package com.xiangxiao.rpan.authority.constant;


/**
 * 全局常量类
 *
 * @author Liangzhifeng
 */
public final class GlobalConsts {

    private GlobalConsts() {
    }

    public static final String RESOURCE_ID_AUTHORITY = "/intellif";

    public static final String RPAN_AUTHORITY = "ran_authority";

    public static final String VERSION_NUM = "1.0";

    public static final String SUPER_USER = "superuser";

    /**
     * 服务首页
     */
    public static final String PASS_URL_HOME_PAGE = "/";

    /**
     * 登录连接
     */
    public static final String PASS_URL_LOGIN = "/oauth/token";

    /**
     * 外部校验权限接口
     */
    public static final String PASS_URL_CHECK_PERMISSION = "/check/permission";

    /**
     * 通过token获取用户的信息
     */
    public static final String PASS_URL_TOKEN_USER_INFO = "/user/info";

    /**
     * 数据权限校验
     */
    public static final String PASS_URL_TOKEN_DATA_RULE_CHECK = "/data/rule/check/**";

    /**
     * 验证用户是否存在
     */
    public static final String VALIDATE_USER_REPEAT = "/user/duplicate/**";

    /**
     * 组织不经过网关时不校验
     */
    public static final String PASS_URL_TOKEN_ORGANIZATION = "/organization/**";

    /**
     * 用户信息对应的key
     */
    public static final String USER_INFO_KEY = "user_detail";

    /**
     * 用户的角色信息key
     */
    public static final String USER_ROLE_INFO_KEY = "oauth_roles";

    /**
     * 用户的可操作的菜单信息key
     */
    public static final String USER_OAUTH_RESOURCE_INFO_KEY = "oauth_resources";

    /**
     * app端的菜单
     */
    public static final String USER_APP_OAUTH_RESOURCE_INFO_KEY = "app_oauth_resources";

    /**
     * ip key
     */
    public static final String IP = "ip";

    public static final String METHOD = "method";

    public static final String LOGIN_TIME = "loginTime";

    //权限类型
    /**
     * 新增
     */
    public static final int CREATE = 0;

    /**
     * 查询
     */
    public static final int FIND = 1;

    /**
     * 修改
     */
    public static final int UPDATE = 2;

    /**
     * 删除
     */
    public static final int DELETE = 3;

    /**
     * 删除
     */
    public static final int STATUS_DELETED = 1;

    /**
     * 可用(未删除)
     */
    public static final int STATUS_ENABLED = 0;


    /**
     * 授权token Key
     */
    public static final String AUTHORIZATION_KEY = "zfile-token";

    /**
     * 授权信息token信息
     */
    public static final String AUTHORIZATION_BEARER = "Bearer";

    /**
     * token过期时间key
     */
    public static final String TOKEN_EXPIRE_TIME_KEY = "token_expire_time";

    /**
     * 过期状态：未过期
     */
    public static final int STATUS_UNEXPIRED = 0;

    /**
     * 过期状态：已过期
     */
    public static final int STATUS_EXPIRED = 1;

    /**
     * 可用状态：不可用
     */
    public static final int STATUS_UN_USE = 0;

    /**
     * 可用状态：可用
     */
    public static final int STATUS_IN_USE = 1;
    /**
     * 普通账号类型
     */
    public static final Integer SIMPLE_USER_ACCOUNT_TYPE = 1;
    /**
     * 普通管理员账号类型
     */
    public static final Integer ADMIN_USER_ACCOUNT_TYPE = 100;
    /**
     * 超级管理员账号类型
     */
    public static final Integer SUPER_USER_ACCOUNT_TYPE = 1000;

    /**
     * 公共模块权限 每个人都会有的权限模块
     */
    public static final String INIT_COMMON_MODULE_ID = "800";


    /**
     * 查询角色参数值
     * 表示根据组织机构进行查询角色列表  默认是这个
     */
    public static final int ROLE_LIST_BY_ORGID = 1;
    /**
     * 查询角色参数值
     * 表示根据权限大小查出角色比当前用户权限小的角色列表,包含权限相等的
     */
    public static final int ROLE_LIST_BY_AUTHORITY_SIZE = 2;
    /**
     * 查询角色参数值
     * 表示根据权限大小查出角色比当前用户权限小的角色列表，不包含权限相等，必须是子集
     */
    public static final int ROLE_LIST_BY_AUTHORITY_SIZE_MUST_CHILD = 3;


    /**
     * 根据模块数量是否有包含关系来验证权限大小,默认这个
     */
    public static final int AUTHORITY_TYPE_BY_MODULES = 1;
    /**
     * 根据是否有账号管理接口验证权限大小
     */
    public static final int AUTHORITY_TYPE_BY_INTERFACE = 2;

    /**
     * 新增用户接口
     */
    public static final String ADD_USER_INTERFACE = "/ifaas-authority/user/create";

    /**
     * 超级管理员标识
     */
    public static final int SUPERUSER_LEVEL = 1;

    /**
     * 普通账号级别
     */
    public static final int DEFAULT_USER_LEVEL = 0;

    /**
     * 普通管理员级别
     */
    public static final int DEFAULT_ADMIN_USER_LEVEL = 2;

    /**
     * 用户数据权限类型
     */
    public static final int USER_DATA_TYPE = 0;
    /**
     * 角色数据权限类型
     */
    public static final int ROLE_DATA_TYPE = 1;

    /**
     * 单位数据权限类型
     */
    public static final int ORG_DATA_TYPE = 2;

    /**
     * 人脸库插件
     */
    public static final String TABLE_INIT_LIST = "tableInitList";

    /**
     * 人脸库插件
     */
    public static final String TABLE_INIT_PLUGIN = "pluginInitList";

    /**
     * app client
     */
    public static final String CLIENT_APP = "app";

    /**
     * Redis用户信息过期时间
     */
    public static final Long DEFAULT_USER_INFO_EXPIRE_TIME = 86400L;
}
